FIG. 5 is a block diagram illustrating a configuration of a database system described in PTL 1. Referring to FIG. 5, the database system includes a client 102, a server 104, and a database 106. In addition, the server 104 includes a command interface 202, a command parser 204, a command converter 206, a cryptography unit 208, and a database interface 210.
The database system illustrated in FIG. 5 operates as described below to execute database query processing while encrypting data in the database 106 and keeping the data secret.
The client 102 sends a database operation instruction described by a language such as SQL (Structured Query Language) to the server 104. The command interface 202 communicates with the client 102 and receives the database operation instruction. The command parser 204 parses (analyzes) the database operation instruction received by the command interface 202, and extracts such as an operator of processing to be executed, a column name of an operand to generate a parse tree. The command converter 206 determines the parse tree, and, when a column encrypted in the database 106 is an operand, converts an operation with respect to the column so as to include cryptography processing such as encryption and decryption. The server 104 executes a database operation in accordance with the conversion result obtained in this manner. When the conversion result includes cryptography processing such as encryption and decryption, the server 104 executes the cryptography processing using the cryptography unit 208.
In addition, query processing in a database system that stores a table including encrypted data is described in PTL 2.